﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SistemaVarejo.Model;
using SistemaVarejo.DAO;

namespace SistemaVarejo.View
{
    public partial class frm_venda : Form
    {

        public int id { set; get; }

        public frm_venda()
        {
            InitializeComponent();
        }

        private void btnNovo_Click(object sender, EventArgs e)
        {
            Cancelar();
            txtVendedor.Focus();
        }
        private void Cancelar()
        {
            txtCliente.Clear();
            txtCodigo.Clear();
            txtProduto.Clear();
            txtQuantidade.Clear();
            txtVendedor.Clear();
        }

        private void frm_venda_Load(object sender, EventArgs e)
        {
            
            string data = DateTime.Now.ToShortDateString();
            txtData.Text = data;
        }

        private void btnInserir_Click(object sender, EventArgs e)
        {
            Venda v = new Venda();
            float valor = float.Parse(txtValorProduto.Text);
            int quantidade = int.Parse(txtQuantidade.Text);

            v.produto = txtProduto.Text;
            v.quantProduto = int.Parse(txtQuantidade.Text);
            v.valorVenda = quantidade * valor;
            v.vendedor = txtVendedor.Text;
            v.cliente = txtCliente.Text;
            v.dataVenda = DateTime.Parse(txtData.Text);

            if (VendaDAO.incluir(v))
            {
                MessageBox.Show("Cadastrado");
            }
            else {
                MessageBox.Show("Dead");
            }

        }

        private void btnExcluirVenda_Click(object sender, EventArgs e)
        {
            Venda v = new Venda();
            v.Id = this.id;
            if (VendaDAO.ExcluirVenda(v))
            {
                MessageBox.Show("Excluido com sucesso");
            }
            else {
                MessageBox.Show("Não excluido");
            }
        }

        private void gridVenda_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int i;
            i = (int) (sender as DataGridView).Rows[e.RowIndex].Cells[0].Value;
            this.id = i;                
        }

        private void btnBuscaTodos_Click(object sender, EventArgs e)
        {
            List<Venda> v = VendaDAO.getAllVendas();
            PreencheGrid(v);
        }

        private void btnFiltrar_Click(object sender, EventArgs e)
        {
            Frm_filtro_venda f = new Frm_filtro_venda(this);
            f.ShowDialog();
        }

        public List<Venda> PreencheGrid(List<Venda> v) {
            gridVenda.Rows.Clear();
            foreach (Venda x in v)
            {
                gridVenda.Rows.Add(x.Id, x.produto, x.valorVenda, x.quantProduto, x.vendedor, x.cliente, x.dataVenda);
            }
            return v.ToList();
        }

        private void btnConsultaCliente_Click(object sender, EventArgs e)
        {
            frmConsultaCliente consultaCliente = new frmConsultaCliente(this);
            consultaCliente.ShowDialog();
        }

        public void preencheCliente(Venda v) {
            txtCliente.Text = v.cliente;
        
        }

        public void preencheProduto(Produto p) {
            txtProduto.Text = p.nome;
            txtValorProduto.Text = p.valor.ToString();
        }

        private void btnConsultaProduto_Click(object sender, EventArgs e)
        {
            frm_busca_produtos gp = new frm_busca_produtos(this);
            gp.ShowDialog();

        }

        private void btnInserirVendas_Click(object sender, EventArgs e)
        {
            InserirVendas iv = new InserirVendas(this);
            iv.ShowDialog();
        }

        private void gridVenda_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        
       



    }
}
